package com.mybase.app.fourBase;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

/**
 *SQLiteOpenHelper 的子类，至少需要实现三个方法：
 　　1>构造函数，调用父类 SQLiteOpenHelper 的构造函数
 　　2>onCreate（）方法；//  创建数据库后，对数据库的操作
 　　3>onUpgrage()方法。//  更改数据库版本的操作
 *
 *
 * //DatabaseHelper作为一个访问SQLite的助手累，提供两个方面的功能
 // 第一，getReadableDatabase()和getWriteableDatabase()可以获得SQLiteDatabase对象，通过这个对象对数据库进行操作
 //第二，提供了onCreate和onUpdate两个回调函数，允许我们在创建和升级数据库时，进行自己的操作
 *
 */
public class DatabaseHelper extends SQLiteOpenHelper {
        public static final int VERSION=3;
        //在SQLiteOpenHelper的子类中，必须有下面的第一个构造函数
        //第一个参数：一个Activity对象，第二个参数：数据库的名字,第三个参数：第四个参数：当前数据库的版本
        public DatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory,
                              int version) {
            //必须通过super调用父类当中的构造函数
            super(context, name, factory, version);
        }
        public DatabaseHelper(Context context,String name,int version){
            this(context,name,null,version);
        }
        public DatabaseHelper(Context context,String name){
            this(context,name,VERSION);
        }
        //onCreate函数是第一次创建数据库的时候执行，实际上是在第一次得到SQLiteDatabase对象的时候，才会调用这个方法
        //也就是在DatabaseHelper调用getReadableDabase或者getWriteableDatabase时，如果是第一次创建数据库才执行
        @Override
        public void onCreate(SQLiteDatabase db) {
            System.out.println("创建数据库");
            db.execSQL("create table user(id int,name varchar(20))");//千万别写错了

        }

        //数据库版本更新的时候，调用这个函数
        //比方说，创建数据库的版本是1，更新后的版本是2，就表示数据库更新了
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            System.out.println("更改数据库");
        }


    }
